package com.mt.restaurant.service.sale;

import com.mt.common.core.web.base.PageDTO;
import com.mt.common.core.web.base.PageResultDTO;
import com.mt.restaurant.entity.sale.PaymentRecord;

import java.util.List;

public interface PaymentRecordService {
    /**
     * 根据分页参数查询付款记录集合
     *
     * @param pageDTO 分页条件
     */
    public PageResultDTO findPaymentRecords(PageDTO pageDTO);

    /**
     * 查询全部付款记录集合
     *
     */
    public List<PaymentRecord> findAllPaymentRecords();

    /**
     * 根据名称查询付款记录集合(只提取ID 和 Name)
     *
     * @param paymentRecordName 名称
     */
    public List<PaymentRecord> findPaymentRecordsWithIdNameByName(String paymentRecordName);

    /**
     * 查询所有付款记录集合(只提取ID 和 Name)
     *
     */
    public List<PaymentRecord> findAllPaymentRecordsWithIdName();

    /**
     * 根据ID查询指定的付款记录(只提取ID 和 Name)
     *
     * @param paymentRecordId Id
     */
    public PaymentRecord findPaymentRecordsWithIdNameById(Long paymentRecordId);

    /**
     * 根据ID查询指定的付款记录
     *
     * @param paymentRecordId Id
     */
    public PaymentRecord findPaymentRecord(Long paymentRecordId);

    /**
     * 根据ID查询指定的付款记录(包含外键)
     *
     * @param paymentRecordId Id
     */
    public PaymentRecord findPaymentRecordWithForeignName(Long paymentRecordId);

    /**
     * 新增付款记录
     *
     * @param paymentRecord 实体对象
     */
    public PaymentRecord savePaymentRecord(PaymentRecord paymentRecord);

    /**
     * 更新付款记录
     *
     * @param paymentRecord 实体对象
     */
    public PaymentRecord updatePaymentRecord(PaymentRecord paymentRecord);

    /**
     * 根据ID删除付款记录
     *
     * @param paymentRecordId ID
     */
    public void deletePaymentRecord(Long paymentRecordId);
}
